<div class=content>
	<p>目录: R 哲学/ R图例 /R学习的5点三个阶段 /学习资源</p>
	<h2>R哲学</h2>

<pre>
“To understand computations in R, two slogans are helpful:

Everything that exists is an object.
Everything that happens is a function call."
— John Chambers</pre>


	<h2>R画图</h2>
	<h3>R原生画图 图例控制</h3>
	<p>ref: 
		<a target="_blank" href="http://www.360doc.com/content/17/0831/20/46931810_683661129.shtml">360doc</a>, 
		<a target="_blank" href="https://blog.csdn.net/xiangyong58/article/details/54579293">csdn</a>,
		<a target="_blank" href="https://www.rstudio.com/wp-content/uploads/2016/10/how-big-is-your-graph.pdf">how-big-is-your-graph.pdf</a>,
	</p>
<img src="data/R/images/R_legend_01.jpg">
<img src="data/R/images/R_legend_02.jpg">
	<p>mai=c（下，左，上，右）的边界空间。</p>
	<p>c(bottom, left, top, right); mar=c(5, 4, 4, 2) + 0.1</p>
<pre>
命令1:设置绘图参数mai=c(下，左，上，右) 的边界空间。
命令2:绘制柱状图。
命令3:选取绘图区域左下角和右上角的坐标。
命令4:正常绘图，设置xpd=T。xinch()、yinch()，分别表示沿x轴，y轴移动的距离，按绝对距离计算，或按坐标轴的数量级计算。fill=T，即显示图标（默认为矩形填充色）。fill=F的话可以设置pch，选择图标类型。
命令5:设置adj=0.6，adj越接近于0，图标与文字的相对距离越远。
此参数作用于文字，图标不动。
命令6:设置x.intersp=0.6，越接近于0，图标与文字的绝对距离越近。以一侧为标准，图标文字均移动。
命令7:设置text.width=1.4，表示图标和文字整体的宽度。当文字太长时可以调节此参数。
命令8:text.width与x.intersp结合使用，效果最好。
命令9:设置ncol=2，分为两列。
</pre>


	<h2>R学习的5点三个阶段、书籍</h2>
	<h3>第一阶段(1点)</h3>
	<p>基础的文件操作(read.*, write.*)、数据结构知识，认识什么是数据框(data.frame)、列表(list)、矩阵(matrix)、向量(vector)，如何提取(包括which, []等)、置换(t, matrix等)、删除(-, which等)、运算(+, -, *, / , %%, %/%等)、转换(as.*)、修改(edit, fix等)数据（包括单个数、行、列、表、变量），安装包、调用包以及session的保存。完成这一阶段，你就大致能像excel里处理数据一样了。</p>
	
	
	<h3>第二阶段（3点）</h3>
	
	<ol> 
		<li><b>学习统计</b>。这是贯穿整个R学习的最重要的一部，很多时候你并不是不知道在哪里找，怎么使用某个函数的参数，更多的时候你是不知道某个统计方法的原理，所代表的意义甚至不知道该用什么方法。所以学习统计学知识往往才是学习R的关键，之后找函数、怎么用其实都是傻瓜式的，并不需要你从头编写算法。这部分内容页要结合每个人要做的事做</li>
		<li><b>批量处理</b>。由于R和matlab一样，注重的是批量处理，而且R之中的循环往往效率极低，所以在R之中如果你发现你要使用双层循环的时候，就要想想了，有没有批量处理的方法。
			<ul>
				<li>a、首先，几乎所有的R里的运算符和自带的函数都是可以批量处理的。比如向量a+向量b是指每个元素按照index相加，所以就没必要for一下了；</li>
				<li>b、其次，R自带有的apply族函数(因为是一系列以apply结尾的函数，所以称为apply族)，split，以及aggregate函数。这三类就是R自带的批量处理的利器，学好这三类函数，基本就可以完成绝大部分的数据批量处理了。</li>
				<li>c、然后就是reshape2包以及plyr包了，这是批量处理的两个利器，reshape主要是整形，plyr包基本提供了一套整理数据的理念，学好这两个包，批量处理将事半功倍。</li>
				<li>d、在实际过程中，一些for还是无法避免的。这时候就要考虑用别的语言来处理这部分事情了。比较常用的方法就是用别的语言批量生成R的代码，还有就是直接用R调用别的语言处理的结果或者用别的语言调用R的处理结果。</li>
			</ul>
		</li>
		<li><b>绘图系统</b>。总结而言，我们可以把R的绘图系统分成四个：Graphics， lattice，ggplot2以及grid。最好学习顺序也是按照这个来。
			<ul>
				<li>a、自带的绘图系统。这套系统可以完成最基本的事情，其操作也类似于matlab，可以看做是分步骤命令参数式绘图，基本就是将一系列作图看做一步步的命令，每一句都干一件事，然后通过参数调整其中的某个元素的大小、位置、颜色。</li>
				<li>b、lattice。绘图逻辑也同上。只是加了分组绘图、facet的功能，这些都很实用，其目的就是讲自带函数中需要大量预处理以及多步绘图的命令用一行命令代替。上手也非常简单。</li>
				<li>c、ggplot2。这是经典的R绘图包，绘图哲学是图层式的，理解成一个一个图层的覆盖。这个绘图系统能做很多事，而且其自带主题也相当漂亮。有一定的学习难度。</li>
				<li>d、grid。grid绘图系统算是最基元的绘图命令，很多指令都是从画圆、直线、矩形开始的，这算是R里最好理解但也是最复杂的绘图系统。适合想入深坑的人士学习，如果要自由创造一些新的图形，或者编写绘图包，这是必学的绘图系统。另一个值得说的就是grid中也有专门用来整理拼图的指令，这个对于有一些论文拼图需求的人来说还是学学比较好。</li>
			</ul>
		</li>

		<p>如果你完成了以上两个阶段，你已经可以在工作学习中完成绝大部分的工作。但如果你是知识的创造者，或者是个程序员，或者是要实践自己的算法、理论、统计方法、绘图方法，或者亦或是你只是脑抽了，那就要进入第三阶段的学习。</p>



	<h3>第三阶段（1点）</h3>
	<p>这部分包括：C语言掌握与精通、R语言调试、改进、编写包、写一个地道的帮助文档、推销自己的想法。这一阶段完成了，你也就是一个R语言的大牛了。少年到处是你可以施展拳脚的地方。</p>
	





	<h2>学习资源</h2>
	<p><b>书籍类：</b></p>
	<p>建议入门用《R语言实战》，然后想要快速指南式的了解R语言的统计应用也可以看《复杂数据统计方法》。</p>
	<p>统计学的内容按照自己的需要自行补充，在这里就补推荐了，推荐了也是和R没啥关系的。</p>
	<p>绘图系统推荐两本书就够用了：《ggplot2》和《R Graphics Cookbook》这两本也都有中文版可以买到。</p>
	<p>如果这部分都已经学得不错了，其实你就不需要书了，直接看R的帮助文档吧，help(XXX)或者? XXX 都可以。</p>
	<p>在此建议用RStudio，可以帮助你很快的查看帮助，编写script、断点调试等等。</p>
	<p>需要补充的是springer出了一系列叫<a target="_blank" href="https://rd.springer.com/bookseries/6991">《Use R! - Springer》 </a>的书，更新到70本了，很多是免费获取的，大家可以自己下载。</p>




	<p>Refer: <a target="_blank" href='https://mp.weixin.qq.com/s?__biz=MzA3MTM3NTA5Ng==&mid=2651059858&idx=1&sn=1ddba4b7df0460b095eda4cdc30302cc'>表哥有话讲</a> 微信公众号</p>


	<h2>R问答社区</h2>
	<p><a href="https://r.789695.n4.nabble.com/R-help-f789696.html">R help</a>: This forum is an archive for the mailing list r-help@r-project.org (more options) Messages posted here will be sent to this mailing list.</p>


</div>
